local table2string

table2string = function(t)
    -- table 开始
    local str_array = {"{"}

    if type(t) ~= "table" then
        -- table 结束
        table.insert(str_array, "}")
        return table.concat(str_array)
    end

    for k, v in pairs(t) do
        -- 保存 key 值
        if type(k) == "string" then
            table.insert(str_array, "\n\t" .. k .. " = ")
        end
        -- 保存 value 值
        local val_type = type(v)
        if val_type == "table" then
            table.insert(str_array, table2string(v))
        elseif val_type == "boolean" then
            table.insert(str_array, v == true and "true" or "false")
        elseif val_type == "string" then
            table.insert(str_array, [["]] .. v .. [["]])
        elseif val_type == "number" then
            table.insert(str_array, string.format("%d", v))
        else
            table.insert(str_array, "")
        end
        table.insert(str_array, ",")
    end

    -- table 结束
    table.insert(str_array, "\n}")

    return table.concat(str_array)
end

return table2string
